/**
 * Projeto......: ErreAga-core
 * Data criacao.: Nov 6, 2007 9:03:30 AM
 * Autor........: helder
 */
package erreAga.eb;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * @author helder
 *
 */
@Entity
@Table(name = "funcionario", schema="public")
public class Funcionario implements Serializable {

  @Id
  @SequenceGenerator(name="seqFuncionario", sequenceName="public.funcionario_id_seq")
  @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="seqFuncionario")
  @Column(name="id")
  private Integer id;

  @Column(name="matricula")
  private String matricula;

  @Column(name="cpf")
  private String cpf;

  @Column(name="nome")
  private String nome;

  @Column(name= "lotacao")
  private String lotacao;

  @Temporal(TemporalType.DATE)
  @Column(name= "data_nascimento")
  private Date dataDeNascimento;

  @Column(name= "sexo")
  private Character sexo;

  @Column(name="endereco")
  private String endereco;

  @Column(name="telefone_residencial")
  private String telefoneResidencial;

  @Column(name= "telefone_celular")
  private String telefoneCelular;

  @Column(name="email")
  private String email;

  @Column(name="agencia_bancaria")
  private String agenciaBancaria;

  @Column(name="conta_corrente")
  private String contaCorrente;

  @Column(name="salario_base")
  private Double salarioBase;

  @OneToMany(mappedBy="funcionario")
  private List<AtestadoMedico> atestados;

  @OneToMany(mappedBy="funcionario")
  private List<HoraExtra> horasExtras;



  /**
   *
   */
  private static final long serialVersionUID = -2155361464424552192L;

  /**
   *
   */
  public Funcionario() {
  }



  /**
   * @param id
   */
  public Funcionario(Integer id) {
    this.id = id;
  }



  /**
   * @param matricula
   * @param cpf
   * @param nome
   * @param lotacao
   * @param dataDeNascimento
   * @param sexo
   * @param endereco
   * @param telefoneResidencial
   * @param telefoneCelular
   * @param email
   * @param agenciaBancaria
   * @param contaCorrente
   * @param salarioBase
   */
  public Funcionario(String matricula, String cpf, String nome, String lotacao, Date dataDeNascimento, Character sexo, String endereco, String telefoneResidencial, String telefoneCelular, String email, String agenciaBancaria, String contaCorrente, Double salarioBase) {
    this.matricula = matricula;
    this.cpf = cpf;
    this.nome = nome;
    this.lotacao = lotacao;
    this.dataDeNascimento = dataDeNascimento;
    this.sexo = sexo;
    this.endereco = endereco;
    this.telefoneResidencial = telefoneResidencial;
    this.telefoneCelular = telefoneCelular;
    this.email = email;
    this.agenciaBancaria = agenciaBancaria;
    this.contaCorrente = contaCorrente;
    this.salarioBase = salarioBase;
  }

  /**
   * @return the agenciaBancaria
   */
  public String getAgenciaBancaria() {
    return agenciaBancaria;
  }

  /**
   * @param agenciaBancaria the agenciaBancaria to set
   */
  public void setAgenciaBancaria(String agenciaBancaria) {
    this.agenciaBancaria = agenciaBancaria;
  }

  /**
   * @return the contaCorrente
   */
  public String getContaCorrente() {
    return contaCorrente;
  }

  /**
   * @param contaCorrente the contaCorrente to set
   */
  public void setContaCorrente(String contaCorrente) {
    this.contaCorrente = contaCorrente;
  }

  /**
   * @return the cpf
   */
  public String getCpf() {
    return cpf;
  }

  /**
   * @param cpf the cpf to set
   */
  public void setCpf(String cpf) {
    this.cpf = cpf;
  }

  /**
   * @return the dataDeNascimento
   */
  public Date getDataDeNascimento() {
    return dataDeNascimento;
  }

  /**
   * @param dataDeNascimento the dataDeNascimento to set
   */
  public void setDataDeNascimento(Date dataDeNascimento) {
    this.dataDeNascimento = dataDeNascimento;
  }

  /**
   * @return the email
   */
  public String getEmail() {
    return email;
  }

  /**
   * @param email the email to set
   */
  public void setEmail(String email) {
    this.email = email;
  }

  /**
   * @return the endereco
   */
  public String getEndereco() {
    return endereco;
  }

  /**
   * @param endereco the endereco to set
   */
  public void setEndereco(String endereco) {
    this.endereco = endereco;
  }

  /**
   * @return the lotacao
   */
  public String getLotacao() {
    return lotacao;
  }

  /**
   * @param lotacao the lotacao to set
   */
  public void setLotacao(String lotacao) {
    this.lotacao = lotacao;
  }

  /**
   * @return the matricula
   */
  public String getMatricula() {
    return matricula;
  }

  /**
   * @param matricula the matricula to set
   */
  public void setMatricula(String matricula) {
    this.matricula = matricula;
  }

  /**
   * @return the nome
   */
  public String getNome() {
    return nome;
  }

  /**
   * @param nome the nome to set
   */
  public void setNome(String nome) {
    this.nome = nome;
  }

  /**
   * @return the salarioBase
   */
  public Double getSalarioBase() {
    return salarioBase;
  }

  /**
   * @param salarioBase the salarioBase to set
   */
  public void setSalarioBase(Double salarioBase) {
    this.salarioBase = salarioBase;
  }

  /**
   * @return the sexo
   */
  public Character getSexo() {
    return sexo;
  }

  /**
   * @param sexo the sexo to set
   */
  public void setSexo(Character sexo) {
    this.sexo = sexo;
  }

  /**
   * @return the telefoneCelular
   */
  public String getTelefoneCelular() {
    return telefoneCelular;
  }

  /**
   * @param telefoneCelular the telefoneCelular to set
   */
  public void setTelefoneCelular(String telefoneCelular) {
    this.telefoneCelular = telefoneCelular;
  }

  /**
   * @return the telefoneResidencial
   */
  public String getTelefoneResidencial() {
    return telefoneResidencial;
  }

  /**
   * @param telefoneResidencial the telefoneResidencial to set
   */
  public void setTelefoneResidencial(String telefoneResidencial) {
    this.telefoneResidencial = telefoneResidencial;
  }

  /**
   * @return the atestados
   */
  public List<AtestadoMedico> getAtestados() {
    return atestados;
  }

  /**
   * @param atestados the atestados to set
   */
  public void setAtestados(List<AtestadoMedico> atestados) {
    this.atestados = atestados;
  }



  /**
   * @return the id
   */
  public Integer getId() {
    return id;
  }



  /**
   * @param id the id to set
   */
  public void setId(Integer id) {
    this.id = id;
  }




  public List<HoraExtra> getHorasExtras() {
    return horasExtras;
  }




  public void setHorasExtras(List<HoraExtra> horasExtras) {
    this.horasExtras = horasExtras;
  }



}